A microprocessor-based system on an integrated circuit includes the processor, but also includes other functional blocks, referred to as peripheral devices, or peripherals. These peripherals are provided for specific purposes, for example to allow the processor to communicate with other devices.
Of course, there is an advantage in providing a relatively large number of such peripherals, in order to increase the available functionality of the device. However, this has the disadvantage that each of the peripherals tends to consume some power, even when the additional functionality, which it provides, is not required.
In order to avoid this disadvantage, it is known to provide a microprocessor-based system of this type, in which peripherals may be disabled and enabled dynamically. That is, at times when the functionality provided by a peripheral device is required, then that peripheral device is allowed to operate in its normal way. However, at other times, when the functionality provided by a peripheral device is not required, the peripheral device is disabled. For example, the system clock may be disconnected from the peripheral device. This means that, at times when the functionality provided by a peripheral device is not required, that peripheral device does not consume any power.
However, in such systems, there remains the disadvantage that, even while a peripheral device is disabled, the software running on the processor may still attempt to access that peripheral device. When this happens, the system will go into an error condition, with results which may not be predictable.